package com.example.usermanagement.service;

import com.example.usermanagement.dto.request.UserAddRequest;
import com.example.usermanagement.dto.request.UserQueryRequest;
import com.example.usermanagement.dto.request.UserUpdateRequest;
import com.example.usermanagement.dto.response.PageResponse;
import com.example.usermanagement.dto.response.UserResponse;
import com.example.usermanagement.entity.SysUser;

public interface SysUserService {
    /**
     * 根据ID查询用户
     * @param id 用户ID
     * @return 用户信息
     */
    UserResponse getUserById(Long id);
    // src/main/java/com/example/usermanagement/service/SysUserService.java
    SysUser getUserByUsername(String username);

    /**
     * 查询用户列表
     * @param queryRequest 查询条件
     * @return 分页用户列表
     */
    PageResponse<UserResponse> getUserList(UserQueryRequest queryRequest);

    /**
     * 新增用户
     * @param userAddRequest 用户信息
     * @return 新增的用户ID
     */
    Long addUser(UserAddRequest userAddRequest);

    /**
     * 更新用户
     * @param userUpdateRequest 用户信息
     * @return 是否更新成功
     */
    boolean updateUser(UserUpdateRequest userUpdateRequest);

    /**
     * 根据ID删除用户
     * @param id 用户ID
     * @return 是否删除成功
     */
    boolean deleteUser(Long id);
}
